package com.guigu.health.dao;

import com.guigu.health.pojo.CheckItem;
import com.guigu.health.pojo.Role;
import com.guigu.health.pojo.User;
import com.guigu.health.pojo.UserExample;

import java.util.List;

import org.apache.ibatis.annotations.Param;

public interface UserMapper {
    long countByExample(UserExample example);

    int deleteByExample(UserExample example);

    int deleteByPrimaryKey(Integer id);

    /**
     * 用户注册
     *
     * @param record
     * @return
     */
    int insert(User record);

    int insertSelective(User record);

    List<User> selectByExample(UserExample example);

    User selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);

    int updateByExample(@Param("record") User record, @Param("example") UserExample example);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);

    /**
     * 用户登录
     *
     * @param account
     * @param
     * @return
     */
    User loginUser(@Param("account") String account);

    /**
     * 获取随机盐
     *
     * @param account
     * @return
     */
    String getSalt(@Param("account") String account);

    /**
     * 密码修改
     *
     * @param oldPassword
     * @param newPassword
     * @param account
     * @param salt
     * @return
     */
    int updatePassowrd(@Param("oldPassword") String oldPassword, @Param("newPassword") String newPassword, @Param("account") String account, @Param("salt") String salt);


    /**
     * 删除用户和角色之间的关系
     *
     * @param userID
     */
    void deleteUserRoleKey(@Param("userID") int userID);

    /**
     * 添加用户和角色之间的关系
     *
     * @param userID
     * @param roleIds
     */
    void addUserRoleKey(@Param("userID") int userID, @Param("roleIds") int roleIds);

    /**
     * 根据用户id查询出角色ID
     *
     * @param userID
     * @return
     */
    List<Integer> queryRoleIds(@Param("userID") int userID);


}